package com.dhcc.bpm.modules.metadata.mapper;

import com.dhcc.bpm.modules.metadata.entity.ApiMetadata;
import com.dhcc.bpm.modules.metadata.vo.ApiMetadataVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 接口定义数据表 Mapper 接口
 *
 * @author ccab
 * @since 2020-06-03
 */
public interface ApiMetadataMapper extends BaseMapper<ApiMetadata> {

    /**
     * 自定义分页
     *
     * @param page
     * @param apiMetadata
     * @return
     */
    List<ApiMetadataVO> selectApiMetadataPage(IPage page, ApiMetadataVO apiMetadata);

    List<ApiMetadataVO> selectApiMetadataList(ApiMetadataVO apiMetadata);

    List<ApiMetadataVO> queryApiMetadataList(ApiMetadata apiMetadata);
    /**
     * @param
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.MetadataVO>
     * @Description 树形
     * @Author daina
     * @Date 15:20 2020/3/26
     **/
    List<ApiMetadataVO> tree();

    /**
     * @param groupId
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
     * @Description
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    List<ApiMetadata> findByGroupId(Long groupId);

    /**
     * @param apiId
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
     * @Description
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    List<ApiMetadata> findOtherByApiId(Long apiId);

    /**
     * @param apiId
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
     * @Description
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    List<ApiMetadata> findReqObjectByApiId(Long apiId);

    /**
     * @param apiId
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
     * @Description 请求子类
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    List<ApiMetadata> findChildByApiId(@Param("apiId") Long apiId, @Param("groupId") Long groupId);

    List<ApiMetadataVO> findChildByGroupId(@Param("groupId") Long groupId);

    /**
     * @param apiId
     * @return com.dhcc.bpm.modules.metadata.vo.ApiMetadata
     * @Description 父类请求参数
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    ApiMetadata findParentObjectByApiId(Long apiId);

    /**
     * @param apiId
     * @return com.dhcc.bpm.modules.metadata.vo.ApiMetadata
     * @Description 响应参数
     * @Author daina
     * @Date 15:17 2020/3/26
     **/
    ApiMetadata findResObjectByApiId(Long apiId);

    /**
     * @param opcApiIdReq
     * @return java.util.List<com.dhcc.bpm.modules.metadata.vo.ApiMetadata>
     * @Description 请求参数集合
     * @Author zhangxiaozhuang
     * @Date 14:50 2020/6/20
     **/
    List<String> getApiIds(int addType,Long baseProductId,Long opcApiIdReq, String inType, Integer bodyType, Long parentId,String apiComData);

    /**
     * @Description 查询 同级的参数
     * @Author zhangzexu
     * @Date 14:50 2020/11/10
     * @param apiMetadata
     * @return java.util.List<com.dhcc.bpm.modules.metadata.entity.ApiMetadata>
     **/
    List<ApiMetadata> findOrderChild(ApiMetadata apiMetadata);

    Long  findSysIdByApiId(Long apiId);
}
